.dp__input_wrap {
  position: relative;
  width: 100%;
  box-sizing: unset;

  &:focus {
    border-color: var(--dp-border-color-hover);
    outline: none;
  }
}

.dp__input_valid {
  box-shadow: 0 0 var(--dp-border-radius) var(--dp-success-color);
  border-color: var(--dp-success-color);

  &:hover {
    border-color: var(--dp-success-color);
  }
}

.dp__input_invalid {
  box-shadow: 0 0 var(--dp-border-radius) var(--dp-danger-color);
  border-color: var(--dp-danger-color);

  &:hover {
    border-color: var(--dp-danger-color);
  }
}

.dp__input {
  background-color: var(--dp-background-color);
  border-radius: var(--dp-border-radius);
  font-family: var(--dp-font-family);
  border: 1px solid var(--dp-border-color);
  outline: none;
  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  width: 100%;
  font-size: var(--dp-font-size);
  line-height: calc(var(--dp-font-size) * 1.5);
  padding: var(--dp-input-padding);
  color: var(--dp-text-color);
  box-sizing: border-box;

  &::placeholder {
    opacity: 0.7;
  }

  &:hover:not(.dp__input_focus) {
    border-color: var(--dp-border-color-hover);
  }
}

.dp__input_not_clearable {
  padding-inline-end: var(--dp-input-not-clearable-padding) !important;
}

.dp__input_reg {
  caret-color: transparent;
}

.dp__input_focus {
  border-color: var(--dp-border-color-focus);
}

.dp__disabled {
  background: var(--dp-disabled-color);

  &::placeholder {
    color: var(--dp-disabled-color-text);
  }
}

.dp__input_icons {
  display: inline-block;
  width: var(--dp-font-size);
  height: var(--dp-font-size);
  stroke-width: 0;
  font-size: var(--dp-font-size);
  line-height: calc(var(--dp-font-size) * 1.5);
  padding: 6px 12px;
  color: var(--dp-icon-color);
  box-sizing: content-box;
}

.dp__input_icon {
  cursor: pointer;
  position: absolute;
  top: 50%;
  inset-inline-start:0;
  transform: translateY(-50%);
  color: var(--dp-icon-color);
}

.dp--clear-btn {
  position: absolute;
  top: 50%;
  inset-inline-end: 0;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--dp-icon-color);
  background: transparent;
  border: none;
  display: inline-flex;
  align-items: center;
  padding: 0;
  margin: 0;
}

.dp__input_icon_pad {
  padding-inline-start: var(--dp-input-icon-padding);
}


